Update dependency effect to v4.0.0-rc.110 - #12
Open
renovate[bot] wants to merge 1 commit into
Open
Conversation
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
from
August 12, 2026 09:06
c4eea85 to
c442a36
Compare
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
from
August 13, 2026 17:05
c442a36 to
877de1d
Compare
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
from
August 15, 2026 05:39
877de1d to
e0c032d
Compare
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
from
August 17, 2026 15:13
e0c032d to
6319e4c
Compare
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
from
August 19, 2026 02:48
6319e4c to
3482e2f
Compare
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
2 times, most recently
from
August 21, 2026 06:22
1fcd18b to
02b78b7
Compare
renovate
Bot
force-pushed
the
renovate/effect-4.x
branch
from
August 22, 2026 02:46
02b78b7 to
a8118f0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
4.0.0-beta.103→4.0.0-rc.110Release Notes
Effect-TS/effect (effect)
v4.0.0-rc.110Compare Source
Patch Changes
#7234
6eebd0aThanks @lloydrichards! - MCP servers can now use the 2025-11-25 protocol, including sampling with tools and both form- and URL-based elicitation.Enable it by adding
McpProtocol.v2025_11_25to the server'sprotocolsoption.#7234
6eebd0aThanks @lloydrichards! - MCP servers can now provide icons for server information, resources, resource templates, prompts, and tools usingMcpSchema.Icon.Each icon can specify its source URI, MIME type, supported sizes, and light or dark theme.
#7291
d10ceb0Thanks @fubhy! - Include traversed edge indexes in graph shortest-path results.#7291
d10ceb0Thanks @fubhy! - Add deterministic, index-preservingGraph.minimumSpanningForest.#7291
d10ceb0Thanks @fubhy! - Add index-preserving transitive reduction for directed acyclic graphs.#7261
189b003Thanks @fubhy! - AddGraph.SnapshotandGraph.fromSnapshotfor constructing immutable graphs with explicit node and edge indexes, and simplifyGraph.Edgeto a type-only structural interface.#7261
189b003Thanks @fubhy! - AddSchema.Graphfor schema-based encoding and decoding of immutable directed and undirected graphs.#7267
0a127b8Thanks @tim-smart! - Allow customizing the prefix displayed by CLI prompts.#7272
e491debThanks @fubhy! - Preserve scoped Graph mutation callback errors when the callback manually finalizes its mutable handle.#7266
f99c508Thanks @tim-smart! - Fix SQL persisted queue delivery on SQLite builds withoutSQLITE_ENABLE_UPDATE_DELETE_LIMIT.#7199
7e3f07cThanks @rekram1-node! - Fix Zsh completions for CLI commands with both positional arguments and subcommands.#7274
a894fe1Thanks @fubhy! - Ignore removed allocator history when comparing and hashing immutable Graph values with the same active indexed structure.#7291
d10ceb0Thanks @fubhy! - AddGraph.findCyclewith exact node and edge witnesses.#7294
7e9923bThanks @tim-smart! - Add custom reviver support to HTTP JSON parsing APIs.#7200
f064121Thanks @mikearnaldi! - Support narrowing schedule input and output types with type guard predicates passed toSchedule.while.#7291
d10ceb0Thanks @fubhy! - Add index-preservingGraph.inducedSubgraph.#7244
b660bf0Thanks @AnnaSuSu! - Normalize unbounded PubSub replay capacities to positive integers.#7293
f4fbe9cThanks @tim-smart! - Support standalone Effect.forEach data-last usage#7291
d10ceb0Thanks @fubhy! - Add bounded lazy enumeration of simple paths and all tied shortest paths.#7259
e811353Thanks @fubhy! - Prevent graph edge reads from exposing internal edge records and reject non-finite A* heuristic values.#7251
9761c3cThanks @tim-smart! - AddEncoding.randomHex, a lightweight non-cryptographic generator that coerces lengths to unsigned 32-bit multiples of 8.#7296
baa99fcThanks @tim-smart! - Make unstable CLI boolean flags required when omitted, allowing optional, default, config, and prompt fallbacks to handle absence consistently.#7246
7fd79b2Thanks @tim-smart! - AddEffect.headfor retrieving the first element of an iterable produced by an effect.#7273
a82ffc0Thanks @fubhy! - Validate Graph traversal radii, isolate traversal start configuration, and prioritize the first supplied DFS root.#7291
d10ceb0Thanks @fubhy! - ThrowGraphErrorwhen a negative cycle affects a Bellman-Ford target, reservingOption.none()for unreachable paths.#7248
4026e2dThanks @tim-smart! - Improve tracing performance in span creation and HTTP middleware.#7276
397bf1eThanks @fubhy! - Deduplicate directed neighbor-node queries while preserving first edge occurrence order.#7291
d10ceb0Thanks @fubhy! - Add incident-edge, edges-between, and directed and undirected degree queries toGraph.#7291
d10ceb0Thanks @fubhy! - Add unweighted reachability, explicit weak and strong connectivity predicates, weak components, and tree detection toGraph.v4.0.0-rc.109Compare Source
Patch Changes
#7219
a0743f2Thanks @tim-smart! - Add SQL, HttpApi testing, and CLI schema examples to the published AI documentation.#7241
17892e7Thanks @tim-smart! - Use Context mapUnsafe in less call sites#7240
4d8a230Thanks @tim-smart! - FixEffect.fromOptiondata-first inference for inlineOptionexpressions.#7216
f21f9c9Thanks @tim-smart! - Add aHttpStatusmodule toeffect/unstable/httpthat centralizes the mapping from HTTP status literal names to numeric codes and exportsHttpStatus.fromLiteral.HttpApiSchema.statusnow consumes the new module.#6829
18270ddThanks @lloydrichards! - MCP servers now support the 2024-11-05 and 2025-03-26 RPC revisions through version-specific protocol adapters.#7218
26db404Thanks @tim-smart! - Run SQLPersistedQueuetable creation through versioned migrations so future schema changes can be applied safely.#7210
2670398Thanks @tim-smart! - Preserve nanosecond precision when adjustingTestClockwith large durations.#7205
3702bedThanks @tim-smart! - Remove thekubernetes-typesdependency by vendoring the Kubernetes Pod declarations used by the cluster helpers and exporting them fromeffect/unstable/cluster/K8sTypes.#7236
ccae60eThanks @roninjin10! - Propagate a failedBEGINorSAVEPOINTfromSqlClient.withTransactionas a typedSqlError.makeWithTransactionwrapped thebeginstep together with the transaction body, so afailed
BEGINtook the rollback branch. No transaction was active at that point, theROLLBACKfailed, and itsEffect.orDiewrapper replaced the original typed error with adefect (
cannot rollback - no transaction is active). Callers could no longer classify thefailure as retryable. The path became reachable when the sqlite client started using
BEGIN IMMEDIATE, which acquires a write lock and can fail withSQLITE_BUSY.Commit and rollback now run only after
beginorsavepointsucceeds. A failedbeginorsavepointfails with its originalSqlError, leaves the wrapped effect unexecuted, andstill closes the acquired connection scope.
#7206
6ff5396Thanks @tim-smart! - Bound cluster runner entity residency and storage reads.ShardingConfiggains two knobs:maxResidentEntities(default10_000): the maximum number of entitiesthat can be resident on a runner at the same time. At the cap, the storage
read loop stops admitting messages for new entity addresses (they stay in
storage until a slot frees up) and volatile sends to new addresses fail with
MailboxFull. Persisted sends still succeed."unbounded"restores theprevious behaviour and can only be set programmatically.
unprocessedMessageBatchSize(default1024): the maximum number ofunprocessed messages read from storage in a single poll.
MessageStorage.unprocessedMessagesaccepts an optional{ limit, addresses }argument, and only claims the messages it actuallyreturns. The memory implementation now applies the same ten-minute claim
window as SQL, so bounded reads advance past in-flight requests; resetting an
address or shard makes its claimed messages immediately eligible again.
The encoded driver contract replaces
Encoded.resetAddresswith the batchedEncoded.resetAddressesoperation.SqlMessageStorage.makeEncodedconstructsthe SQL encoded driver directly for custom storage composition.
ClusterWorkflowEngineentities (workflows and the durable clock) now use afixed ten-second idle time, so completed and suspended executions release their
entity slots quickly. Their state is durable, so an evicted execution is
rebuilt from storage when its next message arrives.
v4.0.0-rc.108Compare Source
Patch Changes
#6546
dfb173eThanks @xianjianlf2! - Handle BigInt values safely and consistently across JSON diagnostics and logger formats.#7174
005e090Thanks @tim-smart! - FixQueue.awaitfailing withCause.Donewhen registered before the queue ends.#7180
c82c532Thanks @gcanti! - Prioritize redacted representations in formatters and normalize text logger levels to uppercase.#7193
22b579fThanks @kitlangton! - FixDeferred.awaitdying with aTypeErrorwhen a waiter is interrupted after theDeferredhas been completed.#7179
3e19539Thanks @tim-smart! - FixDurableDeferred.raceAllso a completed deferred can wake an active workflow without changing success-biased race semantics#7189
08a3c74Thanks @gcanti! - FixHttpApiquery decoding for array parameters with a single value.#6550
eb0bae0Thanks @xianjianlf2! - Return fresh OpenAPI specs from cachedOpenApi.fromApicalls.#7188
97b544dThanks @gcanti! - Mark the internal~sentinelsSchema annotation as@internalso release declaration stripping removes it together withSchemaAST.Sentinel. This keeps the published declarations self-consistent for consumers that type-check dependencies withskipLibCheck: false.#7158
4f6d131Thanks @k3dom! - Improve Union candidate selection: a nested union member is dispatched by the sentinels common to all its members, and candidates whose sentinel the input contradicts are excluded.#7178
fad4b7cThanks @tim-smart! - Use Promise microtasks for synchronous Scheduler dispatch.#7181
accf447Thanks @gcanti! - MoveSchemaErrorinto theSchemamodule and remove the standaloneSchemaErrormodule.#7195
31b27e4Thanks @tim-smart! - Ensure discarded non-persisted cluster messages complete without waiting for the entity reply.#7191
8458951Thanks @Digifox03! - FixHttpRouter.Middleware.layerto provide request error services for errors declared inhandles, and expose globalmiddleware errors from
HttpRouter.toHttpEffect.v4.0.0-beta.107Compare Source
Patch Changes
#7156
596f3f9Thanks @tim-smart! - Terminate active multipart file streams when a parser limit is exceeded or the body ends unexpectedly, so file parts fail instead of hanging.#7153
9611ed4Thanks @rajanpanth! - FixDuration'sHash.symbolimplementation to hash a canonical nanoseconds form instead of the raw internalMillis/Nanosrepresentation. Two durations thatDuration.equals/Equal.equalsconsider equal (e.g.Duration.seconds(5)andDuration.nanos(5_000_000_000n)) previously hashed differently, violating the Hash/Equal contract and silently breakingHashSet/HashMaplookups keyed byDuration.#7166
8b91605Thanks @CDVolvik! - Import migrations through a file URL inMigrator.fromFileSystem, so absolute Windows paths are accepted by the ESM loader.Previously the directory and file name were passed to
importas a plain path. On Windows that produced a specifier such asD:\migrations\1_init.ts, which the ESM loader rejects withOnly URLs with a scheme in: file, data, and node are supported.fromFileSystemnow resolves the specifier through thePathservice, so its type widens fromLoader<FileSystem>toLoader<FileSystem | Path>. Callers that already provide an aggregate platform layer such asNodeServices.layerare unaffected; callers that provideFileSystemon its own now also need aPathlayer, and on Windows it must be a platform-aware one rather than the POSIXPath.layer.#7157
d901928Thanks @tim-smart! - AddChannel.mkUint8Arrayand reuse it fromStreamand multipart file collection. This also fixes quadratic buffering inFile.contentEffect, improving collection of a 16 MiB chunked upload by approximately 90x.#7149
b32bdefThanks @gcanti! - Require explicit handling for regular expression pattern constraints translated from JSON Schema documents, with modes to apply trusted patterns or ignore their constraints.v4.0.0-beta.106Compare Source
Patch Changes
#7110
2695168Thanks @fubhy! - Ensure concurrent firstRcRefborrowers share the same resource generation.#7114
6310a8cThanks @fubhy! - Report buffered worker send failures asWorkerErrorvalues.#7117
c2071b1Thanks @fubhy! - MakeTxQueue.shutdownsafe to call after a queue has already been interrupted.#7119
7aff81aThanks @fubhy! - Prevent SQL resolvers from invoking non-empty batch callbacks when every request fails encoding.#7105
a1d4057Thanks @tim-smart! - AddConfigProvider.fromEnvRecordfor building a provider from an explicit environment record.#7111
abf77b0Thanks @fubhy! - Preserve input fiber error types inFiber.joinAll.#7134
6c60375Thanks @marbemac! - Fix cluster shutdown hangs by failing abandoned non-discard requests and stream chunk acknowledgements withEntityNotAssignedToRunner, including persisted requests sent after runner unregistration. This addsEntityNotAssignedToRunnerto the typed error channel of entity clients and request-onlyEntityProxyRPC/HTTP endpoints; discard endpoints remain unchanged.#7107
22f4897Thanks @fubhy! - Preserve FormData bodies when converting client requests through HttpServerRequest.#7120
615d1d5Thanks @fubhy! - FixSqlResolver.findByIdfailing to complete duplicate requests when id encoding fails, which surfaced as aRequestResolver did not complete requestdefect instead of the underlyingSchemaError.#7131
3a86757Thanks @fubhy! - Ignore MCP cancellation notifications for unknown request identifiers.#7104
f4a9762Thanks @gcanti! - AddFunction.memoizeIdempotentand use it to avoid reprocessing canonical Schema ASTs, including optional and mutable property modifiers. Cache Config schema cursor AST compilation.#7144
0bcf6edThanks @fubhy! - Stop multipart parsing after part count, part size, or field size limits are exceeded.#7121
ba9cb63Thanks @fubhy! - Prevent execution-plan event observer defects from changing attempt outcomes or leaving attempt events unpaired.#7147
42c810dThanks @tim-smart! - Release worker pool entries when an RPC worker's receive loop fails.#7148
1416ccdThanks @gcanti! - Consolidate schema arbitrary derivation intoSchema.toArbitrary, which now returns aSchema.Arbitraryfactory that accepts the fast-check module. RemoveSchema.toArbitraryLazyand arbitrary derivation reports.#7109
08d0d39Thanks @fubhy! - FixRcRefleaking resources acquired before a failed acquisition.#7146
548908aThanks @gcanti! - Improve Schema representation identity, anonymous-reference eligibility, and JSON Schema alias finalization.#6862
4b3460dThanks @fubhy! - EnsureScopedRef.setreleases a replacement when the previous value's finalizer defects.#7060
d170596Thanks @fubhy! - PreservemaxItemssemantics when importing JSON SchemaprefixItems.#7116
aea89d0Thanks @fubhy! - Keep span end times at zero when tracer timing is disabled.#7124
deed5fbThanks @fubhy! - Use a distinct AES-GCM initialization vector for each encrypted event log entry.EventLogEncryption.encryptnow returns each IV with its ciphertext, and encrypted event log clients and servers must be upgraded together because theWriteEntrieswire shape changed.v4.0.0-beta.105Compare Source
Patch Changes
#7087
0418564Thanks @tim-smart! - Recognize tagged Config and RPC errors across duplicatedeffectpackage copies.#6827
d334a85Thanks @jaipaljadeja! - Add bounded 429 retries and custom response header names toHttpClient.withRateLimiter.#7084
f0be855Thanks @tim-smart! - Stop capturing definition-location stack frames inContext.Service.#7090
b206fa5Thanks @tim-smart! - ExposestdinIsTerminalandstdoutIsTerminaleffects through theStdioservice.#7093
b938c8aThanks @gcanti! - Add the opt-inreportInputparse option for retaining rejected inputs in enumerable fields on value-bearing schema issues and including them in default formatted messages. Value-bearing issue constructors accept the rejected input and parse options directly, andSchema.Annotations.Issuenow supportsexpectedfor default messages.Schema issues no longer format implicitly through
Issue#toString. UseSchemaIssue.makeFormatterDefault()when a human-readable message is needed. The throwing and Promise-based adapters inSchemaParsernow use the generic message"Schema validation failed"and expose the structuredSchemaIssue.Issueas the errorcause; consumers that previously read the formatted error message should inspect and explicitly format that cause instead.Schema.makeEffectnow returnsSchemaIssue.Issuefailures instead of wrapping them inSchemaError, andSchema.withConstructorDefaultaccepts anEffectthat fails withSchemaIssue.Issue. FallibleOpticoperations return structuredSchemaIssue.Issuefailures, while schema failures fromSchema.toIsoandSchema.toDifferJsonPatchuse the generic error message and preserve the issue incauseinstead of formatting it internally.#7097
8525f05Thanks @tim-smart! - AddCron.formatfor converting aCroninstance to a cron expression, with an option to include the seconds field.v4.0.0-beta.104Compare Source
Minor Changes
0f721d4Thanks @tim-smart! - Return the new file offset as aSizefromFile.seek.Patch Changes
#6934
1001bccThanks @tim-smart! - httpapi: add typed response headers across handlers, generated clients (includingHttpApiTest), streaming responses, and OpenAPI withHttpApiSchema.WithHeaders. AddHttpApiSchema.encodeToWithHeadersfor folding response headers into domain types such as error classes. Explicitcontent-typeandcontent-lengthvalues applied withHttpServerResponse.setHeaderorsetHeadersnow override body-derived values.#7044
993ba60Thanks @fubhy! - Commit SQL event journal entries only after their write callback succeeds.#6957
67faacdThanks @fubhy! - Select Bash completions for the active positional argument.#6941
b78acdfThanks @fubhy! - Generate even and odd safe integers in Crypto random APIs.#6965
fbb9ce5Thanks @fubhy! - Correct the runtime tag spelling forCliError.UnknownSubcommand.#6963
722ea48Thanks @fubhy! - Exclude disabled choices from multi-select prompt selection and submission.#7001
3058fd5Thanks @fubhy! - Keep ordered SQL resolver results aligned when batched request encoding fails.#6937
62d0575Thanks @fubhy! - Fix the encoded output type ofTestSchema.Encoding.encodeUnknownEffect.#7014
99dd6b5Thanks @tim-smart! - Add lightweight INI, YAML, and TOML parsers undereffect/unstable/encodingand remove their runtime dependencies.#7053
7963ce1Thanks @fubhy! - Fix arbitrary generation for tuples with multiple optional elements.#7047
af14e75Thanks @fubhy! - FixTuple.pickreturn types to preserve the requested index order and duplicate indices.#7066
24e22d2Thanks @fubhy! - CloseResourceMapacquisition scopes when a lookup fails.#7036
647d14eThanks @fubhy! - Fix scoped reentrant lock finalizers releasing under the wrong fiber owner.#6983
1434eecThanks @fubhy! - Apply byte range and chunk size options to default Web file responses.#7071
a5278b1Thanks @fubhy! - Fix MCP sampling metadata optionality and validate it as an object.#6946
6af04a5Thanks @fubhy! - Defer memoized Layer state installation until Effect execution.#6943
cb6c837Thanks @fubhy! - Reject zero execution attempts inExecutionPlansteps.#7026
d44ceadThanks @tim-smart! - Add execution-plan lifecycle events via an optionalonEventhandler onEffect.withExecutionPlanandStream.withExecutionPlan.The handler receives an
ExecutionPlan.Event, a tagged union ofAttemptStart,AttemptSuccess, andAttemptFailure, allowing attempt outcomes to be observed from outside the effect for logging and metrics:Every
AttemptStartis followed by exactly one terminal event.AttemptFailurecarries the full failureCause, so defects and interruption are reported as well as expected errors, and terminal events run like finalizers so they are emitted even when the attempt is interrupted. Event numbering matchesExecutionPlan.CurrentMetadata:attemptis cumulative across steps, whilestepAttemptis 1-based within the current step.#7077
88c7632Thanks @tim-smart! - RenameSchedule.andThenandSchedule.andThenResulttoSchedule.concatandSchedule.concatResult.#6975
abcbb2aThanks @fubhy! - Encode SSE events with empty data as dispatchable events.#7037
8f63cceThanks @fubhy! - Preserve OTLP metric delta checkpoints when an export fails.#7057
d56dfcfThanks @fubhy! - Fix the error type exposed by the curriedSink.catchoverload.#6947
a98cda9Thanks @fubhy! - Check symbol-keyed properties in Match object patterns.#6956
6704bb8Thanks @fubhy! - Emit valid CSI sequences from the unstable CLIcursorTohelper.#7008
6143de2Thanks @tim-smart! - Prevent Bash completions from treating flag values as subcommands.#7032
936b135Thanks @marbemac! - Fix a@effect/clustershutdown deadlock on single-runner topologies (e.g. single-node deployments andTestRunner), whereSharding.sendOutgoingretriedEntityNotAssignedToRunnerforever during teardown.#6940
1bbae84Thanks @fubhy! - Omit services removed byContext.addOrOmitfrom the returned context type.#7065
d795ee7Thanks @tim-smart! - Fix DevTools span requests to preserve their state when queued for sending.#7016
0a82d88Thanks @brandon-julio-t! - Normalize cluster durable clock wake-up timestamps to whole milliseconds.#6945
9215bc5Thanks @fubhy! - Preserve integral precision when parsing decimal nano and micro duration inputs#7050
a1b5df2Thanks @fubhy! - Include schedule errors in the error channel ofEffect.scheduleandEffect.scheduleFrom.#7062
92a9ac5Thanks @fubhy! - Fix the inspectable JSON identity ofFiberSet.#6959
6bde7f2Thanks @fubhy! - Match Fish completions against the full nested command path.#6951
a712131Thanks @fubhy! - Use the supplied hash forHashMap.modifyHashinsertions, updates, and removals.#6989
2e6f760Thanks @fubhy! - Support standardBodyInitvalues when reading converted client request bodies throughHttpServerRequest.#6986
aa05804Thanks @fubhy! - Synchronize HTTP server response content headers when replacing the body.#6944
badd3bfThanks @fubhy! - MakeIterable.flattenstack safe across empty iterables.#6968
02b0265Thanks @fubhy! - Allow MCP tool calls to omit optional arguments.#7033
3437e21Thanks @fubhy! - Fix memory journal conflict detection skipping the first newer entry.#7034
41a550dThanks @fubhy! - Return the first unused remote sequence from the in-memory event journal.#7042
17b5d50Thanks @fubhy! - Relay entries imported into an in-memory event journal to other remotes.#7074
96e5e95Thanks @fubhy! - Preserve and update runner health in the in-memory cluster runner storage.#7038
e4d589eThanks @fubhy! - Clear in-memory message primary-key indexes when clearing an entity address.#7005
ae4cf7bThanks @fubhy! - Generate valid MSSQL upserts for multi-table persistence.#6998
6ef5f1aThanks @fubhy! - Decode split UTF-8 sequences correctly in NDJSON streams.#6972
2235a29Thanks @tim-smart! - Persist a serializable defect when a cluster reply cannot be encoded, preventing persisted entity callers from hanging.#6962
b32f4cbThanks @fubhy! - Support empty records and non-array iterables inPrompt.all.#7023
7f4c095Thanks @tim-smart! - RenameRateLimiter.makeSleeptoRateLimiter.sleepand support self-first partially applied and uncurried usage.#7041
5f3fb81Thanks @fubhy! - End runner streams after emitting their terminal replies.#7020
17f0b91Thanks @gcanti! - FixSchema.maketo preserve existing nestedSchema.Classinstances, including in array fields, while recursively constructing plain class inputs provided at runtime inside unions. Constructor defaults remain scoped to structural field and element occurrences, withSchemaAST.Context.constructorDefaultrepresenting the single default link for each occurrence.Optimize
Function.memoizeto use a singleWeakMaplookup for cached values. Its callback no longer acceptsundefinedas a return type becauseundefinedrepresents a cache miss.The performance of the two array paths can be reproduced by saving the following program as
scratchpad/schema-make-6890-benchmark.tsand runningnode scratchpad/schema-make-6890-benchmark.tsfrom the repositoryroot:
Representative local results on Node 24.12.0 (six runs, with the first discarded):
#7055
0cdadd7Thanks @fubhy! - FixStream.slidingSizeto produce the same windows regardless of upstream chunk boundaries.#6978
39b57d7Thanks @fubhy! - Retain the last SSE event ID across dispatched events.[#6976](https://redirect.github.com/Effect-TS/eff
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.